﻿using System;

namespace _31_隐藏构造函数_继承与多态
{
    class Program
    {
        static void Main(string[] args)
        {
            Camara c = Camara.CurrentInstance;
            Console.WriteLine($"设备标识：{c.DeveiceID}");
        }
    }

    //声明一个Camare类，模拟相机设备（用在访问某个硬件设备的类，一般不希望在应用程序生命周期内创建过多的实例，因为多个实例同时操作一个设备容易产生冲突，所以隐藏了构造函数的类需要对外公开一个静态成员（如静态改叫生），使得外部代码能够英语课刚才类型实例
    class Camara
    {
        private Guid _deviceID;

        private Camara()
        {
            _deviceID = Guid.NewGuid();
        }
        public Guid DeveiceID => _deviceID;

        #region 静态成员
        private static Camara _currentInstance = new Camara();
        public static Camara CurrentInstance => _currentInstance;
        #endregion
    }
}
